#ifndef __BSP_H__
#define __BSP_H__

/* Import HAL related library  导入HAL相关库 */
#include "main.h"
#include "gpio.h"
#include "tim.h"
#include "usart.h"

#include "stm32f1xx_hal.h"
#include "stm32f103xe.h"


/* Import device driver library  导入设备驱动库 */
#include "bsp_beep.h"
#include "bsp_key.h"
#include "bsp_motor.h"
#include "bsp_encoder.h"
#include "bsp_uart.h"
#include "bsp_motion.h"
#include "bsp_pid.h"
#include "bsp_sbus.h"
#include "bsp_auto.h"


#include "stdio.h"




/* DEFINE */
#define LED_ON()		HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, SET)
#define LED_OFF()		HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, RESET)
#define LED_TOGGLE()	HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin)

/*四组继电器的定义*/
#define RELAYS1_ON()	HAL_GPIO_WritePin(RELAYS1_GPIO_Port, RELAYS1_Pin, SET)
#define RELAYS2_ON()	HAL_GPIO_WritePin(RELAYS2_GPIO_Port, RELAYS2_Pin, SET)
#define RELAYS3_ON()	HAL_GPIO_WritePin(RELAYS3_GPIO_Port, RELAYS3_Pin, SET)
#define RELAYS4_ON()	HAL_GPIO_WritePin(RELAYS4_GPIO_Port, RELAYS4_Pin, SET)
#define RELAYS1_OFF()	HAL_GPIO_WritePin(RELAYS1_GPIO_Port, RELAYS1_Pin, RESET)
#define RELAYS2_OFF()	HAL_GPIO_WritePin(RELAYS2_GPIO_Port, RELAYS2_Pin, RESET)
#define RELAYS3_OFF()	HAL_GPIO_WritePin(RELAYS3_GPIO_Port, RELAYS3_Pin, RESET)
#define RELAYS4_OFF()	HAL_GPIO_WritePin(RELAYS4_GPIO_Port, RELAYS4_Pin, RESET)

/* functions */
void Bsp_Init(void);
void Bsp_Loop(void);


#endif /* __BSP_H__ */
